There are many types of computing services, resources and data that computer users and applications need to manage and otherwise access, such as services and data maintained on corporate networks and other remotely accessible sites including intranets and the internet. As there are many different computing platforms, various platform-independent mechanisms and protocols that facilitate the exchange of network information are becoming commonplace, including HTTP (HyperText Transfer Protocol), XML (extensible Markup Language), XML Schema, and SOAP (Simple Object Access Protocol). The concept of web services, in which businesses, organizations, and other providers offer services to users and applications, is based on these standards. Web services are services that connect applications across an intranet, extranet, or across the Internet, so that these applications can share resources and information. Web services can be offered by any individual or organization that has the tools to create them and make them available to other individuals or organizations online.
To be of value, web services need to enable users and applications to locate them, and exchange the information needed to execute them. To this end, UDDI (Universal Description Discovery & Integration) provides a set of defined services (e.g., in a universal business registry) that help users and applications discover such businesses, organizations, and other web services providers, along with a description of their available web services and the technical interfaces needed to access those services. UDDI thus facilitates the connection between the providers and the consumers of Web services. Although such services may be provided over the internet, services also may be provided in an enterprise environment or other intranet, where the services and their usage may be more controlled. Thus, not just UDDI, but other service registries (such as one based on Microsoft Corporation's Active Directory®) may provide a way of locating a distributed service.
Regardless of the service registry, taxonomies such as those within UDDI may be used to categorize sets of related values in the service registry, in which these values are typically used to categorize entities such as web services or web service providers. These values make up the “nodes” within a taxonomy. The nodes typically offer a hierarchical breakdown of a domain (such as the series of hierarchically arranged nodes in a geographic taxonomy path “World/Europe/UK/Scotland”). Taxonomies may also cover domains where there is no established hierarchy, such as by placing all nodes as peers at the top, or root level.
However, while UDDI provides a valuable technology for locating web services that works in part by providing the ability to categorize UDDI entries, the UDDI specifications provide no standard mechanism for programmatically discovering nodes within a taxonomy, and specifically no support for discovering related nodes. Further, there is no way to discover what is at the root of a given taxonomy. Although it is possible for a client to cache the taxonomy data (via some receiving mechanism outside of UDDI), such data tends to be large, and may be customized and/or change often, making client caching impractical in many, if not most, situations.
As a result, this lack of support significantly hinders navigation around the taxonomy and the presentation of taxonomy-related data. What is needed is a better way for clients to interact with taxonomies, such as UDDI taxonomies, to obtain such information about the taxonomy and the contained nodes and node relationships.